#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <getch.h>
#include "teacher.h"
#include "main.h"
#include "tool.h"

Tch ste[100];//教师
Stu stu[100];//学生
Str str[100];//离开学生
int count=0;//记录学生数
int cnt=0;//记录离开学生数

//教师功能如下

void add(void)//添加学生
{
	int a;
	printf("请输入添加的学生个数:\n");
	scanf("%d",&a);//批量添加
	for(int i=0;i<a;i++)
	{
		int j=0;
		while(stu[j].sex) j++;
		printf("请输入学生姓名性别学号:\n");
		scanf("%s%s%d",stu[j].name,&stu[j].sex,&stu[j].num);
		printf("添加成功\n");
		cnt++;
		anykey_continue();
	}
}


void del(void)//删除学生
{
	printf("请输入要删除学生学号:\n");
	int number;
	scanf("%d",&number);
	for(int i=0; i<100 ;i++)
	{
		if(stu[i].sex)	
		{
			if(stu[i].num==number)
			{
				int cnt=0;
				while(cnt<3)
				{
					printf("请再次输入学号确认\n");//确认学号
					int a;
					scanf("%d",&a);
					if(a==number)
					{
						printf("删除%s %s %d成功\n",stu[i].name,'w'==stu[i].sex?"女":"男",stu[i].num);
						int j=0;
						while(str[j].sex) j++;
						strcpy(str[j].name,stu[i].name);//删除学生拷贝到退出名单
						strcpy(&str[j].sex,&stu[i].sex);
						str[j].num=stu[i].num;
						stu[i].sex = 0;
						cnt--;
						anykey_continue();
						return;
					}
					else 
					{
						printf("两次输入学号不一致,确定是否继续1：是 2否\n");
						int b;
						scanf("%d",&b);
						if(b==1)
						{
							anykey_continue();//继续
							cnt++;
						}
						else if(b==2)
						{
							printf("结束\n");
							anykey_continue();//退出
							return;
						}
					}
				}
			}
		}
	}
	show_msg("没找到该学生,检查删除条件",1.5);
}
void found(void)//查找学生
{
	printf("请选择查找方式 1:姓名 2:学号\n");
	int a;
	scanf("%d",&a);
	if(a==1)//姓名查找
	{
		char name[20];
		printf("请输入要查询的姓名:\n");
		scanf("%s",name);
		for(int i=0;i<100;i++)
		{
			if(stu[i].sex)
			{
				if(!strcmp(stu[i].name,name))
				{
					printf("%s %s %d  \n",stu[i].name,'w'==stu[i].sex?"女":"男",stu[i].num);
					anykey_continue();
					return;
				}
			}
		}
		printf("查无此人\n");
		anykey_continue();
	}
	else if(a==2)//学号查找
	{
		int number;
		printf("请输入要查询的学号\n");
		scanf("%d",&number);
		for(int i=0;i<100;i++)
		{
			if(stu[i].num==number)
			{
				printf("%s %s %d  \n",stu[i].name,'w'==stu[i].sex?"女":"男",stu[i].num);
				anykey_continue();
				return;
			}
		}
		printf("查无此人\n");
		anykey_continue();
	}
}

void modify(void)//修改学生信息
{
	char key[20] = {};
	printf("请输入要修改的学生姓名:\n");
	scanf("%s",key);
	for(int i=0;i<100;i++)
	{
		if(stu[i].sex)	
		{
			if(!strcmp(key,stu[i].name))
			{
				printf("请选择您要修改的信息 1:基础信息 2:成绩\n");
				int a;
				scanf("%d",&a);
				if(a==1)//修改基础信息
				{
					printf("请重新输入该学生的姓名 性别 学号:\n");
					scanf("%s%s%d",stu[i].name,&stu[i].sex,&stu[i].num);
					printf("修改成功\n");
					anykey_continue();
					return;
				}
				else if(a==2)//修改成绩
				{
					printf("请重新输入成绩语文数学英语:\n");
					scanf("%d%d%d",&stu[i].chinese,&stu[i].math,&stu[i].english);
					printf("修改成功\n");
					anykey_continue();
					return;
				}
			}
		}
	}
	show_msg("没找该学生,检查查询条件",1.5);
}
void input(void)//录入成绩
{
	int a;
	printf("请输入录入的学生个数:\n");
	scanf("%d",&a);//批量录入
	for(int i=0;i<a;i++)
	{
		char name[20]={};
		printf("请输入录入学生的姓名\n");
		scanf("%s",name);
		for(int j=0;j<100;j++)
		{
			if(!strcmp(stu[j].name,name))
			{
				printf("请输入成绩语文数学英语:\n");
				scanf("%d%d%d",&stu[j].chinese,&stu[j].math,&stu[j].english);
				printf("录入成功\n");
				anykey_continue();
			}
		}
	}
}
void reset(void)//重置学生密码
{
	char name[20];
	printf("请输入您想重置的学生姓名:\n");
	scanf("%s",name);
	for(int i=0;i<100;i++)
	{
		if(!strcmp(stu[i].name,name))
		{
			printf("请输入重置后的密码");
			stu[i].lock=0;//解锁
			char a[7];
			scanf("%s",a);
			strcpy(stu[i].password,a);
			printf("重置成功！\n");
			anykey_continue();
			return;
		}
	}
	printf("没找该学生,检查查询条件\n");
	anykey_continue();
}
void online(void)//显示在校学生信息
{
	for(int i = 0;i<100;i++)
	{
		if(stu[i].sex)	
		{
			printf("%s %s %d %d %d %d\n",stu[i].name,'w'==stu[i].sex?"女":"男",stu[i].num,stu[i].chinese,stu[i].math,stu[i].english);
		}
	}
	anykey_continue();
}

void leave(void)//显示退出学生信息
{
	for(int i=0;i<100;i++)
	{
		if(str[i].sex)
		{
			printf("%s %s %d\n",str[i].name,'w'==str[i].sex?"女":"男",str[i].num);
		}
	}
	anykey_continue();
}
void teacher(void)//登录
{
	int cnt=0;
	char name[10];
	char password[7];
	printf("请输入您的姓名\n");
	scanf("%s",name);
	for(int i=0;i<100;i++)
	{
		if(ste[i].sex)
		{
			if(!strcmp(ste[i].name,name))
			{
			//判断该姓名是否锁定
				if(ste[i].lock==1)
				{
					printf("帐号已锁定，请解锁\n");
					anykey_continue();
					return;
				}
				//判断是否第一次登录 非零不是
				if(ste[i].password[0])
				{
					while(cnt<3)
					{
						printf("请输入您的密码\n");
						scanf("%s",password);
						if(!strcmp(password,ste[i].password))
						{
							printf("密码正确！\n");
							for(;;)
							{
								system("clear");
								printf("-------------------------------\n");
								printf("1、添加学生\n");
								printf("-------------------------------\n");
								printf("2、删除学生\n");
								printf("-------------------------------\n");
								printf("3、查找学生\n");
								printf("-------------------------------\n");
								printf("4、修改学生信息\n");
								printf("-------------------------------\n");
								printf("5、录入学生成绩\n");
								printf("-------------------------------\n");
								printf("6、重置学生密码\n");
								printf("-------------------------------\n");
								printf("7、显示所有在校学生信息\n");
								printf("-------------------------------\n");
								printf("8、显示所有退出学生信息\n");
								printf("-------------------------------\n");
								printf("0、退出系统\n");
								printf("-------------------------------\n");
								switch(getch())
								{
									case '1':add();break;
									case '2':del();break;
									case '3':found();break;
									case '4':modify();break;
									case '5':input();break;
									case '6':reset();break;
									case '7':online();break;
									case '8':leave();break;
									case '0':return;
								}
							}
						}
						else
						{
							printf("密码错误！\n");
							cnt++;
						}
					}
					ste[i].lock=1;
					printf("帐号已锁定,请解锁\n");
					anykey_continue();
					return;
				}	
				else//零是
				{
					printf("这是您第一次登录，请设置您的密码！:\n");
					scanf("%s",ste[i].password);
					printf("设置成功！请重新登录！\n");
					anykey_continue();
					return;
				}
			}	
		}
	}
	printf("查无此人！\n");
	anykey_continue();
}
